package Java8实战._3_Stream_用流收集数据._2_归约和汇总;


import Java8实战._3_Stream_用流收集数据.Dish;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class _1_查找流中的最大值和最小值 {

    public static void main(String[] args) {
        List<Dish> menu = Arrays.asList(
                new Dish("pork",false,800, Dish.Type.MEAT),
                new Dish("beef",false,700, Dish.Type.MEAT),
                new Dish("chicken", false, 400, Dish.Type.MEAT),
                new Dish("french fries", true, 530, Dish.Type.OTHER),
                new Dish("rice", true, 350, Dish.Type.OTHER),
                new Dish("season fruit", true, 120, Dish.Type.OTHER),
                new Dish("pizza", true, 550, Dish.Type.OTHER),
                new Dish("prawns", false, 300, Dish.Type.FISH),
                new Dish("salmon", false, 450, Dish.Type.FISH)
        );

        Comparator<Dish> dishComparator = Comparator.comparingInt(Dish::getCalories);
        menu.stream()
                .collect(Collectors.maxBy(dishComparator))
                .ifPresent((Dish dish) -> System.out.print(dish.getName() + "," + dish.getCalories()));



    }
}
